﻿using System;
using System.Collections.Generic;
using System.Text;

namespace r.libr.Media
{
    public partial class Tag
    {
        public struct ArtistsInfo
        {
            private Treetable TagTree;
            public OriginalInfo Original;
            public PerformersInfo Performers;
            internal ArtistsInfo(Treetable tempTagTree)
            {
                TagTree = tempTagTree;
                Original = new OriginalInfo(TagTree);
                Performers = new PerformersInfo(TagTree);
            }

            public string Composers
            {
                get
                {
                    return (TagTree.GetLeaf("Artists.Composers").ToString());
                }
                set
                {
                    TagTree.SetLeaf("Artists.Composers", value);
                }
            }
            public string Writers
            {
                get
                {
                    return (TagTree.GetLeaf("Artists.Writers").ToString());
                }
                set
                {
                    TagTree.SetLeaf("Artists.Writers", value);
                }
            }

            public struct OriginalInfo
            {
                private Treetable TagTree;
                internal OriginalInfo(Treetable tempTagTree)
                {
                    TagTree = tempTagTree;
                }

                public string Performers
                {
                    get
                    {
                        return (TagTree.GetLeaf("Artists.Original.Performers").ToString());
                    }
                    set
                    {
                        TagTree.SetLeaf("Artists.Original.Performers", value);
                    }
                }
                public string Writers
                {
                    get
                    {
                        return (TagTree.GetLeaf("Artists.Original.Writers").ToString());
                    }
                    set
                    {
                        TagTree.SetLeaf("Artists.Original.Writers", value);
                    }
                }
            }

            public struct PerformersInfo
            {
                private Treetable TagTree;
                internal PerformersInfo(Treetable tempTagTree)
                {
                    TagTree = tempTagTree;
                }

                public string Lead
                {
                    get
                    {
                        return (TagTree.GetLeaf("Artists.Performers.Lead").ToString());
                    }
                    set
                    {
                        TagTree.SetLeaf("Artists.Performers.Lead", value);
                    }
                }
            }
            public string Accompaniment
            {
                get
                {
                    return (TagTree.GetLeaf("Artists.Performers.Accompaniment").ToString());
                }
                set
                {
                    TagTree.SetLeaf("Artists.Performers.Accompaniment", value);
                }
            }
            public string Remix
            {
                get
                {
                    return (TagTree.GetLeaf("Artists.Performers.Remix").ToString());
                }
                set
                {
                    TagTree.SetLeaf("Artists.Performers.Remix", value);
                }
            }
            public string Refinement
            {
                get
                {
                    return (TagTree.GetLeaf("Artists.Performers.Refinement").ToString());
                }
                set
                {
                    TagTree.SetLeaf("Artists.Performers.Refinement", value);
                }
            }
            public string Website
            {
                get
                {
                    return (TagTree.GetLeaf("Artists.Performers.Website").ToString());
                }
                set
                {
                    TagTree.SetLeaf("Artists.Performers.Website", value);
                }
            }

        }
    }
}
